package edu.upn.sigemfi.sac.beans;

import edu.upn.sigemfi.sac.bc.DocumentoDelegate;
import edu.upn.sigemfi.sac.be.Documento;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DocumentoController extends AbstractController {

    private DocumentoDelegate delegado;
    private Documento documento;
    private Integer estado;

    public Integer getEstado() {
        return estado;
    }

    public void setEstado(Integer estado) {
        this.estado = estado;
    }


    public DocumentoController() {
        delegado = new DocumentoDelegate();
    }

    public Documento getDocumento() {
        return documento;
    }

    public void setDocumento(Documento documento) {
        this.documento = documento;
    }

    public String nuevo(){
        estado = 0;
        documento = new Documento();
        return "crearDocumento";
    }

    public String editar(){
        estado = 1;
        return "crearDocumento";
    }

    public String guardar(){
        try {
            if(estado == 0){
                delegado.crear(documento);
            }
            else if(estado == 1)
                delegado.editar(documento);

            mostrarInfo("Se registraron los Cambios Correctamente");
        } catch (Exception ex) {
            Logger.getLogger(DocumentoController.class.getName()).log(Level.SEVERE, null, ex);
            mostrarError(ex.getMessage());
            return "";
        }

        return "volver";
    }

    public String eliminar(){
        try {
            delegado.eliminar(documento);
            mostrarInfo("Se elimino el Docuemnto \"" + documento.getNombre() + "\"");
        } catch (Exception ex) {
            Logger.getLogger(DocumentoController.class.getName()).log(Level.SEVERE, null, ex);
            mostrarError("No se pudieron realizar los cambios");
        }

        return "";
    }

    public List<Documento> getTodos(){
        List<Documento> todos = null;
        try {
            todos = delegado.todos();
        } catch (Exception ex) {
            Logger.getLogger(DocumentoController.class.getName()).log(Level.SEVERE, null, ex);
            mostrarError("No se pudo obtener los Documentos de la Base de Datos");
        }
        return todos;
    }

    public String buscarParametros(){

        return "verDocumentos";
    }
}
